const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  publicPath: '/',
  outputDir: 'dist',
  assetsDir: 'static',
  lintOnSave: process.env.NODE_ENV === 'development',
  productionSourceMap: false,
  devServer: {
    // 设置项目运行的端口号
    port: '8800',
    // 项目运行完毕自动在浏览器中打开
    open: true,
    // 配置代理，解决跨域
    proxy: {
      '/api': {
        target: 'http://localhost:8888/api', // 请求的服务器的地址
        changeOringin: true, // 允许跨域代理
        pathRewrite: {
          '^/api': '/api' // 路径重写，当请求的服务器地址中不包含/api时可以启用路径重写
        }
      }
    }
  },
  chainWebpack: (config) => {
    // 指定生产发布模式打包入口
    config.when(process.env.NODE_ENV === 'production', (config) => {
      // config.entry('app').clear().add('./src/entry/main-prod.js')
      // 用externals加载外部CDN资源
      // config.set('externals', {
      //   vue: 'Vue',
      //   vuex: 'Vuex',
      //   'vue-router': 'VueRouter',
      //   axios: 'axios',
      //   echarts: 'echarts',
      //   nprogress: 'nprogress',
      //   'js-cookie': 'Cookie',
      //   'mavon-editor': 'mavonEditor'
      // })
      //
      config.plugin('html').tap((args) => {
        args[0].isProd = true
        return args
      })
    })
    // 指定开发模式的打包入口
    config.when(process.env.NODE_ENV === 'development', (config) => {
      // config.entry('app').clear().add('./src/entry/main-dev.js')
      config.plugin('html').tap((args) => {
        args[0].isProd = false
        return args
      })
    })
  }
})
